function ContatoDialog(uniqueId,idNegocio,actionLink,dados,callBackSuccess){
	
	this.id = uniqueId;
	this.servletAction = actionLink;
	this.saveButton = null;
	this.cancelButton = null;
	this.action = null;
	this.dialog = null;
	this.form = null;
	this.negocio = null;
	this.idContato = null;
	this._callBackSuccess = callBackSuccess;
	
	
	this.render = function(){
	
			var el_div_dialog = dojo.doc.createElement("div");		    	
	    	var el_form = dojo.doc.createElement("form");
	    	var el_div_pane = dojo.doc.createElement("div");
		    	  	
		    var el_input_idContato = dojo.doc.createElement("input");
		    var el_input_contatoAction = dojo.doc.createElement("input");
		    var el_input_idNegocio = dojo.doc.createElement("input");
		      	
		    	    	
		    dojo.attr( el_form,{
		    	id:"formContato"+uniqueId,
		    	name:"formContato"
		    });
	    	
	    	
	    	dojo.attr( el_div_pane,{
	    		"class":"dijitDialogPaneContentArea"
	    	});

			
	    	var el_input_nome = createNewLineForm( "nome_contato","nome_contato"+uniqueId,"$pageContext.idioma['negociacao.listagem.contatos.nome']:",true);
	    	var el_input_tel1 = createNewLineForm( "telefone_1_contato", "telefone_1_contato"+uniqueId,"$pageContext.idioma['negociacao.reuniao.participante.telefone'] 1:",false);
	    	var el_input_tel2 = createNewLineForm( "telefone_2_contato", "telefone_2_contato"+uniqueId,"$pageContext.idioma['negociacao.reuniao.participante.telefone'] 2:",false);
	    	var el_input_email = createNewLineForm( "email_contato","email_contato"+uniqueId,"$pageContext.idioma['negociacao.listagem.contatos.email']:",true);
	    	var el_input_cargo = createNewLineForm( "cargo_contato","cargo_contato"+uniqueId,"$pageContext.idioma['negociacao.listagem.contatos.cargo']:",false);
	    	var el_input_endereco = createNewLineForm( "endereco_contato","endereco_contato"+uniqueId,"$pageContext.idioma['negociacao.listagem.contatos.endereco'] :",false);

	    	
	    	
	    	var el_div_action = dojo.doc.createElement("div");
	    	var el_btn_add = dojo.doc.createElement("button");
	    	var el_btn_cancel = dojo.doc.createElement("button");
	    	
	    	dojo.attr( el_div_action,{
	    		"class":"dijitDialogPaneActionBar"
	    	});
	    	
	    	
	    	dojo.attr( el_btn_cancel,{
	    		id:"btnCancelarFormContato"+uniqueId,
	    		name:"btnCancelarFormContato",
	    		type:"button"
	    	});
	    	
	    	dojo.attr( el_btn_add,{
	    		id:"btnAdicionarContatoForm"+uniqueId,
	    		name:"btnAdicionarContatoForm",
	    		type:"button"
	    	});

	    	
	    	el_btn_add.appendChild( dojo.doc.createTextNode( "$pageContext.idioma['negociacao.acoes.salvar']" ) );
	    	el_btn_cancel.appendChild( dojo.doc.createTextNode( "$pageContext.idioma['negociacao.acoes.cancelar']" ) );
					    	
	    	el_div_action.appendChild( el_btn_add );
	    	el_div_action.appendChild( el_btn_cancel );
	    	
	    	el_form.appendChild(el_input_contatoAction);
	    	el_form.appendChild( el_input_idContato );
	    	el_form.appendChild( el_input_idNegocio );
	    	
	    	el_div_pane.appendChild( el_input_nome );
	    	el_div_pane.appendChild( el_input_tel1 );
	    	el_div_pane.appendChild( el_input_tel2 );
	    	el_div_pane.appendChild( el_input_email );
	    	el_div_pane.appendChild( el_input_cargo );
	    	el_div_pane.appendChild( el_input_endereco );
	    	

	    	el_form.appendChild(el_div_pane);
	    	el_form.appendChild(el_div_action);
	    	el_div_dialog.appendChild(el_form);
	    	
	    	new dijit.form.Button( {},el_btn_add );
	    	new dijit.form.Button( {},el_btn_cancel );
	    	
	    	new dijit.form.TextBox( {
	    		type:"hidden",
	    		name:"idContato",
	    		id:"idContato"+uniqueId,
	    		value:""}, el_input_idContato );
	    	

	    	new dijit.form.TextBox( {
	    		type:"hidden",
	    		name:"contatoAction",
	    		id:"contatoAction"+uniqueId,
	    		value:""}, el_input_contatoAction );

	    	new dijit.form.TextBox( {
	    		type:"hidden",
	    		name:"idNegocio",
	    		id:"idNegocio"+uniqueId,
	    		value: idNegocio
	    	}, el_input_idNegocio );
	    	    	
	    	
	    	new dijit.form.Form({action:actionLink },el_form);
	    	
	    	
	    	var dj_dialog = new dijit.Dialog( {
		    		title:dados.titulo,
		    		style:"width:"+dados.width+";height:"+dados.height+";display:none;",
		    		id:"divFormContato"+uniqueId,
		    		"class":"janelaModal"
	    		},el_div_dialog   	);
	    	
	    	
	    	
	    	this.dialog = dijit.byId("divFormContato"+uniqueId);
	    	this.saveButton = dijit.byId("btnAdicionarContatoForm"+uniqueId);
	    	this.cancelButton = dijit.byId("btnCancelarFormContato"+uniqueId);
	    	this.form = dijit.byId("formContato"+uniqueId);
	    	this.action = dijit.byId("contatoAction"+uniqueId);
	    	this.negocio = dijit.byId("idNegocio"+uniqueId);
	    	this.idContato = dijit.byId("idContato"+uniqueId);

	    	
	    	dojo.connect(this.cancelButton,"onClick",this,"hide");
	    	dojo.connect(this.saveButton,"onClick",this,"submit");

	    	
			
	};	
	
	//this é passado no dojo.connect
	//A instancia do objeto estará em this.contatoDialog
	this.show = function(event){
		
		if(this.contatoDialog!=null && this.contatoDialog.dialog!=null && this.action!=null && this.contatoDialog.action!=null){
			
			var contatoDialog = this.contatoDialog;
			var action = this.action;
			
			contatoDialog.setAction(action);
			
			if(action=="inserir"){
				
				contatoDialog.reset();
				
				contatoDialog.dialog.show();
			
			}else if(action =="visualizar" && this.idContato!=null ){
				
				
				
				contatoDialog.setContato(this.idContato);
				
				if(this.dados.titulo!=null){
					contatoDialog.setTitle(this.dados.titulo);
				}
				
				if(this.callBackSuccess!=null){
					
					contatoDialog.setCallback(this.callBackSuccess);
					
					
				}else{
					
					contatoDialog.setCallback(function(contatoDialog,contact){});
					
				}
				
				
				dojo.xhrPost( { 
			    	
			    	 url: contatoDialog.servletAction,
			         form: contatoDialog.form.domNode,
			         handleAs: 'xml',
			         contentType: "application/x-www-form-urlencoded; charset=utf-8",
			         load: function(data){

			        	 	var contact = {};
			             	contact.idContato = getValueFromXML(data,"idContato");
			    		 	contact.nome_contato = getValueFromXML(data,"nome");
			    		 	contact.telefone_1_contato = getValueFromXML(data,"telefone1");
			    		 	contact.telefone_2_contato = getValueFromXML(data,"telefone2");
			    		 	contact.cargo_contato = getValueFromXML(data,"cargo");
			    		 	contact.email_contato = getValueFromXML(data,"email");
			    		 	contact.endereco_contato = getValueFromXML(data,"endereco");
			    		 	contact.contatoAction = "salvar";
			    		 	
			    		 	contatoDialog.load(contact);
			    		 	contatoDialog.dialog.show();
			    		 	
			         	},
			         error: function(error) {
			               //Do nothing. 	
			        	 	alert(error); 
			               
			            }
			         });
				
			}
		}else{
			
			alert("hit!");
			
		}
	};
	
	this.hide = function(){
		
		if(this.dialog!=null){
			
			this.dialog.hide();
			
		}		
		
	};
	
	
	
	this.submit = function(){

		if(this.form!=null){
			
			if(!this.form.validate()) return;
			
		}else{
			
			return;
			
		}
			
		var contatoDialog = this;
		
	    dojo.xhrPost( { 
	    	
	    	 url: contatoDialog.servletAction,
	         form: contatoDialog.form.domNode,
	         handleAs: 'xml',
	         contentType: "application/x-www-form-urlencoded; charset=utf-8",
	         load: function(data){
	         		
	        	 	var contact = {};
	             	contact.idContato = getValueFromXML(data,"idContato");
	    		 	contact.nome = getValueFromXML(data,"nome");
	    		 	contact.tel = getValueFromXML(data,"telefone1") + "/" + getValueFromXML(data,"telefone2");
	    		 	contact.cargo = getValueFromXML(data,"cargo");
	    		 	contact.email = getValueFromXML(data,"email");
	    		 	contact.endereco = getValueFromXML(data,"endereco");
	    		 	
	    		 	contatoDialog.hide();
	    		 	
	             	contatoDialog._callBackSuccess(contatoDialog, contact);
	         	},
	         error: function(error) {
	               //Do nothing.
	               	
	        	 	contatoDialog.hide();
	        	 	alert(error); 
	               
	            }
	         });
		
	};
	
	this.setTitle = function(value){
		
		this.dialog.attr("title",value);
		
	};
	
	this.setContato = function(value){
		
		dojo.attr(dijit.byId("idContato"+uniqueId).domNode,{				
				"value":value
		});
		
		
	};
	
	this.setAction =  function(value){
		
		if(this.action!=null){

			dojo.attr(this.action.domNode,{				
				"value":value
			});

		}
		
	};
	
	
	this.setCallback = function(value){
		
		this._callBackSuccess = value;
		
	};
	
	this.teste = function(){
		
		alert("hi!");
		
	};
	
	this.reset = function(){
		
		this.form.attr("required",{
			
			"nome_contato":false,
	 		"email_contato":false
			
		});
		this.form.attr("value",{
			
			"nome_contato":"",
	    	"idContato":"",
	    	"telefone_1_contato":"",
	 		"telefone_2_contato":"",
	 		"cargo_contato":"",
	 		"email_contato":"",
	 		"endereco_contato":""
			
		});
		this.form.attr("required",{
			
			"nome_contato":true,
	 		"email_contato":true
			
		});
		
		this.dialog.attr("title",dados.titulo);
		this._callBackSuccess = callBackSuccess;
		
	};
	
	this.load = function(contact){
	
		this.form.attr("value",contact);
		
		
	};
	
	this.save = function (){};
	
}
